Toggle navigation
Search
思元的開發筆記
Programming
Unity
LeetCode
Golang
Game Demos
Archive
Blog
About
思元的開發筆記
關於 web service, unity, blogger 等軟體工程筆記
×
Search dev.twsiyuan.com
Github SSH 連線設定,確保 Mac SourceTree 正常運作
前陣子在 Mac 上使用 SourceTree 這套 GUI 工具來管理 Github repositories,但由於帳號因安全性考量改用 2FA (Two-factor authentication) 認證後,原先在 SourceTree 採用 HTTPS 利用帳...
Read More
王思元
11:30 下午
GIT
Senior Unity Developer 面試題目分享
分享前陣子尋找新機會所遇到的 Unity 考題 ,十分有水準與微難度,事後回想並整理成此問題筆記。關於該機會的綜合心得放置在文章頁尾。
Read More
王思元
11:11 下午
Unity
Go Reader Pattern 設計與實作
最近在寫小專案所遇到的設計問題,其中一個目標是從檔案中讀取英文單字 (word),並且將其轉換成英文小寫,因此記錄如何在 Golang 設計此機制,並且不斷改進寫了三個版本,並撰寫額外的測試程式碼 (testing code) 進行驗證。
Read More
王思元
2:29 上午
程式語言
,
Golang
Unity 遊戲存檔機制淺談,加密 (Encryption) 保護遊戲存檔防作弊
延續在 前一篇文章 中的議題。 前題,任何的加密機制只是增加破解難度,單機遊戲存檔若沒有特殊硬體的保護,幾乎都可以被破解,光是程式碼反編譯 (decompiling) 並且分析程式碼,便能知道該遊戲如何處理存檔加密,甚至能直接拿到加密用的金鑰 (key)。
Read More
王思元
2:28 下午
軟體工程
,
C-sharp
,
Unity
Unity 遊戲存檔機制淺談,關於壓縮 (Compression) 的三兩事
延續在 前一篇文章 中的議題,在遊戲存檔進行壓縮 (compress) 後儲存,可減少其儲存所需空間,之後讀取先經過解壓縮 (decompress) 後,再反序列化 (deserialize) 還原成遊戲狀態物件來使用。
Read More
王思元
4:00 下午
軟體工程
,
C-sharp
,
Unity
Unity 遊戲存檔機制淺談,從序列化 (Serialization) 到儲存裝置 (Storage)
之前在社團看到的有趣問題,因此綜合以前的開發經驗,整理成這份筆記。
Read More
王思元
10:30 下午
軟體工程
,
C-sharp
,
Unity
Unity rendering order 整理筆記
自從上次 GameJam 體驗在 Unity 中,使用 SpriteRenderer 可直接調整 Sorting layer 來決定 render 順序後,便一直很好奇其背後實作到底是什麼,為什麼改變一個數值便能調整 sprites 在 render 結果的先後順序,而不...
Read More
王思元
3:12 下午
軟體開發
,
Unity
AWS Beanstalk: 日誌 Logs 推送到 CloudWatch 之設定筆記
參考 Reference 章節的 AWS 文件,紀錄如何將部署 在 AWS Beanstalk 的服務所產生的日誌 (logs),設定 CloudWatch Logs agent 來自動推送至 CloudWatch,而不用每次發生問題得自己花時間去撈 logs……。 ...
Read More
王思元
6:15 下午
服務部署
,
AWS
CentOS 7 環境安裝筆記,GUI/gcc/g++/Code::blocks/Go 完整的 Go/Cgo 開發環境
整理之前在 Linux 建立 Go/Cgo 開發環境的安裝筆記。
Read More
王思元
6:30 下午
Linux
HTTP TimeoutHandler 所踩到的雷與解決方式,需要額外判斷 Request.Context() 的狀態
最近遇到在 HTTP 伺服器壓力測試時遇到棘手的問題,從 nginx logs 發現伺服器回應許多 HTTP 503 service unavailable 的錯誤,一路追蹤最終發現是程式碼實作錯誤,記錄其筆記提醒自己不要忘記這個雷。
Read More
王思元
12:30 上午
軟體開發
,
程式語言
,
Golang
Go build 建置時加入時間 (build time) 與版本號 (git commit id)
因應合作廠商需求,希望我們這邊提供網路服務 (web service) 的執行檔 (executable),能透過某些方法知道其版本號或是建置時間等資訊,以協助其 IT 人員部署 (deployment) 時使用。
Read More
王思元
9:18 下午
軟體開發
,
Golang
,
Linux
Go with Cgo 靜態連結 (static linking) 函式庫建置範例與筆記
延續上一篇 Go with Cgo 動態連結 的文章,由於部署 (deployment) 需求的改變,合作廠商 IT 運維技術人員 (Ops) 對於 Linux 的不熟悉,期望部署不需要管理那些動態連結 (dynamic linking) 函式庫,因而開始研究改用靜態連...
Read More
王思元
6:51 下午
程式語言
,
C-plus-plus
,
Golang
Go with Cgo 動態連結 (dynamic linking) 函式庫建置範例與筆記
在 上一篇文章 中,已經知道如何在 Windows 中,利用 gcc/g++ 建置動態連結函式庫 (dynamic-link library),本篇文章筆記如何在 Go (Golang) 中,利用 cgo 來動態連結函式庫,呼叫使用其函式。
Read More
王思元
6:30 下午
程式語言
,
C-plus-plus
,
Golang
在 Windows 環境建置動態連結函式庫 (Dynamic-link library),使用 MinGW gcc/g++ 以及 CodeBlock
整理在 Windows 環境下,編譯 C/C++ 產出動態連結函式庫 (Dynamic-link library) 給其他專案使用的筆記。 大部分的情況下,在 Windows 作業系統中,通常都使用 Microsoft 所推出的 Vistual Studio IDE 來...
Read More
王思元
6:30 下午
軟體開發
,
C-plus-plus
,
Windows
開發 Blog 文字雲工具,統計部落格字詞出現次數
空閒時間開發的小工具,能夠統計部落格 (Blog) 文章字詞數量,然後根據字詞出現頻率,組合畫在一張圖片上的功能。 建議使用桌機電腦 (desktop),以避免繪製文字雲效能的低落 這功能記得從 2017 下半年就想嘗試,然後一直拖拖...
Read More
王思元
5:16 下午
軟體開發
,
Blogger
,
Golang
Heroku with Golang,如何部署第一個 WebApp
Heroku 是一套支援多程式個語言的雲平台即服務 (platform as a service, PaaS),只要將程式碼上傳到該服務中,便可上頭自動編譯執行,建造自己的網路應用程式,且該服務提供免費試用方案 (有限制的),又有支援 SSL (https)。
Read More
王思元
2:48 下午
服務部署
,
Golang
Linux CentOS Network unreachable 處理解決方式
最近在 VMware VMPlayer 的虛擬機器上安裝 CentOS 7,準備進行需 Docker 環境測試與研究,但卻發現沒有網路……跟以前安裝 CentOS 6 情況不同,當時可是直接有網路的,花點時間整理啟用網路的筆記,對 Linux 不熟悉就得花上許多時間研究...
Read More
王思元
2:55 下午
Linux
使用 Lighthouse 來檢查網站設定,為了更好的 SEO 以及瀏覽體驗
從新聞得知有這個工具,GoogleChrome Lighthouse 是一套開源自動化工具,用來協助檢查網站 (Website) 或是網路應用程式 (Web App) 的質量 (quality),從讀取效能 (performance)、網頁親和力 (accessibil...
Read More
王思元
11:26 上午
網站
C# 回傳內部資料集合的幾種方式,考慮封裝與設計需求
Game Jam 活動 上遇到的有趣問題,如何設計回傳資料集合 (data collection) 的函式 (function)?筆記以下幾種方式,範例採用背包類別 (ItemBag class),要將其類別的內部道具資料,暴露給其他類別使用。 附註:System.Co...
Read More
王思元
8:22 下午
程式語言
,
C-sharp
LeetCode #84 Largest Rectangle in Histogram
Given n non-negative integers representing the histogram's bar height where the width of each bar is 1, find the area of larges...
Read More
王思元
6:30 下午
題目解題
,
LeetCode
Unity C# 遊戲事件訊息通知機制設計 - Observer pattern
前陣子同事分享去資策會 Design pattern 課程所學,聽到 Observer pattern (觀察者模式) 的介紹,感覺這比較是 C++ 老派的實作方式,不一定適用於 C#,因此在此寫此筆記記錄。
Read More
王思元
8:41 下午
程式語言
,
C-sharp
,
Unity
如何設定 Linux 使用 SSH Key-based 登入驗證方式,使用 PuTTY 登入 Linux 伺服器
最近公司架台內部使用的 Linux 機器,原先是輸入 MIS 所設定的帳號密碼登入,但保管帳號密碼顯得有點難以記憶,因此想到可以使用公開金鑰認證 (Public Key Authentication) 方式,不用輸入密碼而是提供私密金鑰來進行登入。
Read More
王思元
6:14 下午
Linux
AWS Beanstalk: Cannot open shared object file and ldconfig
持續的 Beanstalk 部屬筆記,最近部屬的 Go web application,使用到 cgo 動態連結其他函數庫 (shared library) 的函數,在執行階段發生找不到函數庫的錯誤:
Read More
王思元
6:39 下午
服務部署
,
AWS
,
Linux
AWS Beanstalk: Configuring the proxy server - Keepalive connection with backend app
無意間在檢查應用服務時,所發現的 nginx 設定問題,每次與 nginx 連線要求時,nginx 都會另外開一個連線來處理與後端伺服器 (backend app) 的資料交換。目前專案服務採用 source bundle 方式在 Beanstalk 平台部屬 (dep...
Read More
王思元
6:15 下午
服務部署
,
AWS
,
nginx
AWS Beanstalk: HTTP 502 Upstream sent too big header while reading response header from upstream
最近檢查即將上線的服務,發現主要服務經常發生 HTTP 500 的錯誤,從 logs 中確認是其中某個 REST 微服務回應 HTTP 502 Bad Gateway 所導致的,因而從中翻翻閱該微服務的全部 logs,並找到出錯原因以及解決方法。
Read More
王思元
6:30 下午
服務部署
,
AWS
,
nginx
Unity C# Interface, Inheritance and Component:以狀態血量設計為例
最近同事分享之前受訓所學的 Design patterns,加上看到社群有人詢問血量設計問題,因此整理關於在 Unity 中,設計血量系統的可能實作方法。 不得不說,剛從學校畢業開始接觸 Unity 時,最優先採用的是類別繼承 (class inheritance),...
Read More
王思元
1:16 下午
軟體工程
,
C-sharp
,
Unity
Unity C# Inheritance vs Composition 繼承與組件式設計之戰鬥系統經驗談
基於一些機緣而回憶之前身為初心者所掉過的坑,到底應該是使用繼承 (Inheritance) 抑或是組合 (Composition) 方式來設計遊戲中的戰鬥系統,哪一種比較適合 持續變動的遊戲開發 ?
Read More
王思元
11:15 下午
軟體工程
,
Unity
較新的文章
較舊的文章
粉絲專頁
本週熱門
網誌存檔
贊助廣告
粉絲專頁
每周熱門
TCP 連線狀態機制與流程
在開發基於 HTTP 的網路應用服務時,當有大量連線要求,或是與長連線 (Persistent connection) 要求時,常常遇到底層 TCP 的連線斷線錯誤,導致服務不穩定。因此研究了解 TCP 的連線狀態機制,並嘗試用自己的方式整理筆記,希望能從基礎知識中找到...
Unity 遊戲存檔機制淺談,從序列化 (Serialization) 到儲存裝置 (Storage)
之前在社團看到的有趣問題,因此綜合以前的開發經驗,整理成這份筆記。
在 Unity 使用 AssetBundles 實作簡易的遊戲資源打包以及更新機制
Unity 官方之前在 Asset Store 上有分享 AssetBundle Manager ,並提供官方教學文章介紹 AssetBundle 載入機制,我們參考該教學以及範例,因應遊戲設計考量,自己使用 Unity 提供的底層 AssetBundle API,製作...
Unity rendering order 整理筆記
自從上次 GameJam 體驗在 Unity 中,使用 SpriteRenderer 可直接調整 Sorting layer 來決定 render 順序後,便一直很好奇其背後實作到底是什麼,為什麼改變一個數值便能調整 sprites 在 render 結果的先後順序,而不...
Unity WebRequest
在 Unity 建立 Web Request,向指定網址資源送出 HTTP 要求 (Request),等待遠端伺服器回應 (Response),抓取回應得資料內容 (Content) 進行處理。 關於 HTTP 的資料傳輸結構,可以參考的「 HTTP 淺談,使用 PostMa...
Unity Coroutine 使用筆記
最近有人問為什麼 Nested coroutine 的機制與問題,為什麼會是需要 yield return StartCoroutine(...) ,而不能省略 StartCoroutine ?在久遠的 Unity3.x 時代,印象中得呼叫該函數才能夠正常運作。...
CentOS 7 環境安裝筆記,GUI/gcc/g++/Code::blocks/Go 完整的 Go/Cgo 開發環境
整理之前在 Linux 建立 Go/Cgo 開發環境的安裝筆記。
TortoiseGit 配置 PuTTY Key
每次使用 TortoiseGit 進行專案遠端的 Pull/Push 都需要輸入一次認證,次數多了覺得麻煩懶惰,怎麼沒法記憶認證密碼這一回事?原來只是不會用而已…,以下筆記使用 PuTTY 建立 SSH Key,讓 Git 使用 SSH Key 認證,而不用每次進行遠端操作時,...
Unity 遊戲存檔機制淺談,關於壓縮 (Compression) 的三兩事
延續在 前一篇文章 中的議題,在遊戲存檔進行壓縮 (compress) 後儲存,可減少其儲存所需空間,之後讀取先經過解壓縮 (decompress) 後,再反序列化 (deserialize) 還原成遊戲狀態物件來使用。
Unity 遊戲存檔機制淺談,加密 (Encryption) 保護遊戲存檔防作弊
延續在 前一篇文章 中的議題。 前題,任何的加密機制只是增加破解難度,單機遊戲存檔若沒有特殊硬體的保護,幾乎都可以被破解,光是程式碼反編譯 (decompiling) 並且分析程式碼,便能知道該遊戲如何處理存檔加密,甚至能直接拿到加密用的金鑰 (key)。
網誌存檔
▼
2018
( 27 )
▼
10月
( 1 )
Github SSH 連線設定,確保 Mac SourceTree 正常運作
►
9月
( 1 )
Senior Unity Developer 面試題目分享
►
8月
( 1 )
Go Reader Pattern 設計與實作
►
6月
( 3 )
Unity 遊戲存檔機制淺談,加密 (Encryption) 保護遊戲存檔防作弊
Unity 遊戲存檔機制淺談,關於壓縮 (Compression) 的三兩事
Unity 遊戲存檔機制淺談,從序列化 (Serialization) 到儲存裝置 (Storage)
►
5月
( 5 )
Unity rendering order 整理筆記
AWS Beanstalk: 日誌 Logs 推送到 CloudWatch 之設定筆記
CentOS 7 環境安裝筆記,GUI/gcc/g++/Code::blocks/Go 完整的 Go...
HTTP TimeoutHandler 所踩到的雷與解決方式,需要額外判斷 Request.Cont...
Go build 建置時加入時間 (build time) 與版本號 (git commit id)
►
4月
( 4 )
Go with Cgo 靜態連結 (static linking) 函式庫建置範例與筆記
Go with Cgo 動態連結 (dynamic linking) 函式庫建置範例與筆記
在 Windows 環境建置動態連結函式庫 (Dynamic-link library),使用 Mi...
開發 Blog 文字雲工具,統計部落格字詞出現次數
►
3月
( 1 )
Heroku with Golang,如何部署第一個 WebApp
►
2月
( 6 )
Linux CentOS Network unreachable 處理解決方式
使用 Lighthouse 來檢查網站設定,為了更好的 SEO 以及瀏覽體驗
C# 回傳內部資料集合的幾種方式,考慮封裝與設計需求
LeetCode #84 Largest Rectangle in Histogram
Unity C# 遊戲事件訊息通知機制設計 - Observer pattern
如何設定 Linux 使用 SSH Key-based 登入驗證方式,使用 PuTTY 登入 Lin...
►
1月
( 5 )
AWS Beanstalk: Cannot open shared object file and ...
AWS Beanstalk: Configuring the proxy server - Keep...
AWS Beanstalk: HTTP 502 Upstream sent too big head...
Unity C# Interface, Inheritance and Component:以狀態血...
Unity C# Inheritance vs Composition 繼承與組件式設計之戰鬥系統經驗談
►
2017
( 59 )
►
12月
( 4 )
►
11月
( 3 )
►
10月
( 6 )
►
9月
( 5 )
►
8月
( 5 )
►
7月
( 5 )
►
6月
( 5 )
►
5月
( 4 )
►
4月
( 5 )
►
3月
( 8 )
►
2月
( 6 )
►
1月
( 3 )
►
2016
( 44 )
►
12月
( 3 )
►
11月
( 2 )
►
10月
( 6 )
►
9月
( 4 )
►
8月
( 5 )
►
7月
( 4 )
►
6月
( 4 )
►
5月
( 2 )
►
4月
( 2 )
►
3月
( 3 )
►
2月
( 6 )
►
1月
( 3 )
►
2015
( 1 )
►
12月
( 1 )
贊助廣告